package com.mocaris.android.gank.api

import com.mocaris.android.gank.http.WanAndroidResponseBody
import io.reactivex.Observable
import retrofit2.http.*


/**
 * 玩android api
 * @Author mocaris
 * @Date 2019-06-17 16:23
 */
interface WanAndroidAPI {
//=============================公众号===============================
    /**
     * 公众号Tab
     * 获取公众号列表
     */
    @GET("wxarticle/chapters/json")
    fun getPublicNums(): Observable<WanAndroidResponseBody>

    /**
     * 查看某个公众号历史数据
     *
     * [id] 公众号id
     *
     * [page] 公众号页数 从1开始
     */
    @GET("wxarticle/list/{id}/{page}/json")
    fun getPublicRecord(@Path("id") id: String, @Path("page") page: Int): Observable<WanAndroidResponseBody>

    /**
     * 在某个公众号中搜索历史文章
     * [id] 公众号id
     *
     * [page] 公众号页数 从1开始
     *
     * [key] 关键字
     */
    @GET("wxarticle/list/{id}/{page}/json?k={key}")
    fun searchPublicArticle(
        @Path("id") id: String,
        @Path("page") page: Int,
        @Path("key") key: String
    ): Observable<WanAndroidResponseBody>

    /**
     * 最新项目tab (首页的第二个tab)
     *
     * [page] 页码，拼接在连接中，从0开始
     */
    @GET("article/listproject/{page}/json")
    fun newProjects(@Path("page") page: Int): Observable<WanAndroidResponseBody>
//    ==================================首页============================

    /**
     * 首页文章列表
     *
     * [page] 页码，拼接在连接中，从0开始
     */
    @GET("article/list/{page}/json")
    fun homeArticlies(@Path("page") page: Int): Observable<WanAndroidResponseBody>

    /**
     *首页banner
     */
    @GET("banner/json")
    fun homeBanner(): Observable<WanAndroidResponseBody>

    /**
     * 常用网站
     */
    @GET("friend/json")
    fun friendUrl(): Observable<WanAndroidResponseBody>


    /**
     * 热搜词
     *
     * 即目前搜索最多的关键词。
     */
    @GET("hotkey/json")
    fun hotSearchWords(): Observable<WanAndroidResponseBody>

    /**
     * 置顶文章
     */
    @GET("article/top/json")
    fun topArticlies(): Observable<WanAndroidResponseBody>
//======================体系=========================
    /**
     * 体系数据
     */
    @GET("tree/json")
    fun systemTree(): Observable<WanAndroidResponseBody>

    /**
     * 体系下的文章 列表
     *[page] 从0开始
     * [cid] 体系id
     */
    @GET("article/list/{page}/json?cid={cid}")
    fun systemArticle(@Path("page") page: Int, @Path("cid") cid: String): Observable<WanAndroidResponseBody>

//======================导航==========================


    /**
     * 导航数据
     */
    @GET("navi/json")
    fun navigation(): Observable<WanAndroidResponseBody>

//=========================项目=========================
    /**
     * 项目分类
     */
    @GET("project/tree/json")
    fun projectClassification(): Observable<WanAndroidResponseBody>

    /**
     * 项目分类下列表
     * [page] 拼接在链接中，从1开始。
     * [cid] 分类的id，上面项目分类接口
     */
    @GET("project/list/{page}/json?cid={cid}")
    fun projectList(@Path("page") page: Int, @Path("cid") cid: String): Observable<WanAndroidResponseBody>
//=======================登录.注册=======================

    /**
     * 登录
     */
    @POST("user/login")
    @FormUrlEncoded
    fun login(@Field("username") userName: String, @Field("password") password: String): Observable<WanAndroidResponseBody>

    /**
     * 注册
     */
    @POST("user/register")
    @FormUrlEncoded
    fun register(
        @Field("username") userName: String,
        @Field("password") password: String,
        @Field("repassword") repassword: String
    ): Observable<WanAndroidResponseBody>

    /**
     * 退出 注销登录
     */
    @GET("user/logout/json")
    fun logout(): Observable<WanAndroidResponseBody>
//=======================TODO 收藏=======================
}